const char *fname;
g_autofree char *subdir_grub_cfg = NULL;
- if (!gs_file_enumerator_iterate (direnum, &file_info, NULL,
- cancellable, error))
+ if (!g_file_enumerator_iterate (direnum, &file_info, NULL,
+ cancellable, error))
goto out;
if (file_info == NULL)
break;
GFile *path;
const char *name;
- if (!gs_file_enumerator_iterate (enumerator, &file_info, &path,
- cancellable, error))
+ if (!g_file_enumerator_iterate (enumerator, &file_info, &path,
+ cancellable, error))
goto out;
if (file_info == NULL)
break;
GFile *src_child;
const char *name;
- if (!gs_file_enumerator_iterate (dir_enum, &file_info, &src_child,
- cancellable, error))
+ if (!g_file_enumerator_iterate (dir_enum, &file_info, &src_child,
+ cancellable, error))
goto out;
if (file_info == NULL)
break;
{
GFileInfo *child_info;
- if (!gs_file_enumerator_iterate (dir_enum, &child_info, NULL,
- cancellable, error))
+ if (!g_file_enumerator_iterate (dir_enum, &child_info, NULL,
+ cancellable, error))
goto out;
if (child_info == NULL)
break;
GFileInfo *file_info;
GFile *path;
- if (!gs_file_enumerator_iterate (dir_enum, &file_info, &path,
- cancellable, error))
+ if (!g_file_enumerator_iterate (dir_enum, &file_info, &path,
+ cancellable, error))
goto out;
if (file_info == NULL)
break;
GFileInfo *file_info;
GFile *child;
- if (!gs_file_enumerator_iterate (dir_enum, &file_info, &child,
- NULL, error))
+ if (!g_file_enumerator_iterate (dir_enum, &file_info, &child,
+ NULL, error))
goto out;
if (file_info == NULL)
break;
const char *name1;
const char *name2;
- if (!gs_file_enumerator_iterate (dir_enum2, &file_info2, &child2,
- NULL, error))
+ if (!g_file_enumerator_iterate (dir_enum2, &file_info2, &child2,
+ NULL, error))
goto out;
if (file_info2 == NULL)
break;
const char *name;
guint32 type;
- if (!gs_file_enumerator_iterate (direnum, &file_info, &path,
- NULL, error))
+ if (!g_file_enumerator_iterate (direnum, &file_info, &path,
+ NULL, error))
goto out;
if (file_info == NULL)
break;
g_autofree char *csum = NULL;
gint deployserial;
- if (!gs_file_enumerator_iterate (dir_enum, &file_info, &child,
- cancellable, error))
+ if (!g_file_enumerator_iterate (dir_enum, &file_info, &child,
+ cancellable, error))
goto out;
if (file_info == NULL)
break;
GFileInfo *file_info = NULL;
GFile *child = NULL;
- if (!gs_file_enumerator_iterate (dir_enum, &file_info, &child,
- NULL, error))
+ if (!g_file_enumerator_iterate (dir_enum, &file_info, &child,
+ NULL, error))
goto out;
if (file_info == NULL)
break;
GFile *child = NULL;
const char *name;
- if (!gs_file_enumerator_iterate (dir_enum, &file_info, &child,
- NULL, error))
+ if (!g_file_enumerator_iterate (dir_enum, &file_info, &child,
+ NULL, error))
goto out;
if (file_info == NULL)
break;
out:
return ret;
}
+
+#if !GLIB_CHECK_VERSION(2, 44, 0)
+
+gboolean
+ot_file_enumerator_iterate (GFileEnumerator *direnum,
+ GFileInfo **out_info,
+ GFile **out_child,
+ GCancellable *cancellable,
+ GError **error)
+{
+ gboolean ret = FALSE;
+ GError *temp_error = NULL;
+
+ static GQuark cached_info_quark;
+ static GQuark cached_child_quark;
+ static gsize quarks_initialized;
+
+ g_return_val_if_fail (direnum != NULL, FALSE);
+ g_return_val_if_fail (out_info != NULL, FALSE);
+
+ if (g_once_init_enter (&quarks_initialized))
+ {
+ cached_info_quark = g_quark_from_static_string ("ot-cached-info");
+ cached_child_quark = g_quark_from_static_string ("ot-cached-child");
+ g_once_init_leave (&quarks_initialized, 1);
+ }
+
+ *out_info = g_file_enumerator_next_file (direnum, cancellable, &temp_error);
+ if (out_child)
+ *out_child = NULL;
+ if (temp_error != NULL)
+ {
+ g_propagate_error (error, temp_error);
+ goto out;
+ }
+ else if (*out_info != NULL)
+ {
+ g_object_set_qdata_full ((GObject*)direnum, cached_info_quark, *out_info, (GDestroyNotify)g_object_unref);
+ if (out_child != NULL)
+ {
+ const char *name = g_file_info_get_name (*out_info);
+ *out_child = g_file_get_child (g_file_enumerator_get_container (direnum), name);
+ g_object_set_qdata_full ((GObject*)direnum, cached_child_quark, *out_child, (GDestroyNotify)g_object_unref);
+ }
+ }
+
+ ret = TRUE;
+ out:
+ return ret;
+}
+
+#endif
GCancellable *cancellable,
GError **error);
+#if !GLIB_CHECK_VERSION(2, 44, 0)
+gboolean
+ot_file_enumerator_iterate (GFileEnumerator *direnum,
+ GFileInfo **out_info,
+ GFile **out_child,
+ GCancellable *cancellable,
+ GError **error);
+#else
+static inline gboolean
+ot_file_enumerator_iterate (GFileEnumerator *direnum,
+ GFileInfo **out_info,
+ GFile **out_child,
+ GCancellable *cancellable,
+ GError **error)
+{
+ G_GNUC_BEGIN_IGNORE_DEPRECATIONS;
+ return (g_file_enumerator_iterate) (direnum, out_info, out_child, cancellable, error);
+ G_GNUC_END_IGNORE_DEPRECATIONS;
+}
+#endif
+#define g_file_enumerator_iterate ot_file_enumerator_iterate
+
G_END_DECLS
GFile *child;
GFileType ftype;
- if (!gs_file_enumerator_iterate (direnum, &file_info, &child,
- cancellable, error))
+ if (!g_file_enumerator_iterate (direnum, &file_info, &child,
+ cancellable, error))
goto out;
if (file_info == NULL)
break;